﻿#pragma once

namespace BB
{
	class Date
	{
		int _year;
		int _month;
		int _day;

	public:
		Date(int year, int month, int day) : _year(year), _month(month), _day(day) {}
		Date(int year) : _year(year), _month(1), _day(1) {} 
		Date(const Date & d) { _year = d._year; _month = d._month; _day = d._day; }
		bool operator== (const Date &d) const
		{
			if(! (_year == d._year && _month == d._month && _day == d._day)) return false;
			return true;
		}
		bool operator!= (const Date &d) const
		{
			if(*this == d) return false;
			return true;
		}
		bool operator< (const Date &d) const
		{
			if(_year < d._year) return true;
			else if (_year == d._year)
			{
				if(_month < d._month) return true;
				else if(_month == d._month)
				{
					if(_day < d._day) return true;
					return false;
				}
				return false;
			}
			return false;
		}
		bool operator> (const Date &d) const
		{
			if(d < *this) return true;
			return false;
		}
		int year() { return _year; }
		int month() { return _month; }
		int day() { return _day; }
	};
}